/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.asportoonline.business.beans;

import java.util.List;
import javax.ejb.Local;
import org.asportoonline.entities.Categoria;

/**
 * Interfaccia contenente le intestazioni dei metodi da sviluppare per interfacciarsi con il livello
 * di integrazione per l'entità Categoria.
 * 
 * @author fe
 * @see Categoria
 */
@Local
public interface CategoriaManager {

    /**
     * Cerca tutte le categorie presenti nel database.
     * 
     * @return restituisce una lista contenente tutte le categorie presenti nel database; 
     * se non ce ne sono restituisce null.
     * @see Categoria
     */
    List<Categoria> cercaTutteLeCategorie();
    
    /**
     * Inserisce una nuova categoria, che deve avere un nome univoco.
     * 
     * @param cat  
     * @see Categoria
     */
    void inserisciCategoria(Categoria cat);
    
    /**
     * Cerca una categoria in base al nome.
     * 
     * @param nomeCategoria  nome della categoria.
     * @return se il nome esiste restituisce la Categoria, altrimenti restituisce null.
     * @see Categoria
     */
    Categoria cercaCategoria(String nomeCategoria);
    
    /**
     * Cerca i nomi di tutte le categorie presenti nel database.
     * 
     * @return restituisce una lista contenente i nomi di tutte le categorie presenti nel database; 
     * se non ce ne sono restituisce null.
     */
    List<String> recuperaNomiCategorie();
    
}
